/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: lenovo
 * Date: 2022-06-21
 * Time: 8:26
 */
class Data{
    //成员变量
    int year;
    int month;
    int day;

    //构造方法：只帮助对象进行初始化，而不是帮对象开辟空间
    // 1.构造方法方法名与类相同，绝大多数情况下用public修饰 特殊场景下会被private修饰(后序讲单例模式时会遇到)
    // 2.在创建对象时，编译器自动调用，且在对象的生命周期只调用一次
    // 3.没有返回值，void也不行
    // 4.如果程序员没有写构造方法，编译器会自动提供一个无参数的构造方法，但是如果程序员写了，编译器就不会再提供构造方法
    // 5.构造方法可以重载，当有多个构造方法时，编译器会调用合适的构造方法,在创建对象时，对象所传的参数必须有构造函数与之相匹配，否者编译失败
    // 6.this引用可以调用其他的构造方法，但是要注意两点：1. this(参数)语句必须放在构造函数的第一行 2. this(参数)不能成环调用
   //
    //不带参数的构造方法
    public Data(){
        //System.out.println("调用了无无参数的构造方法");
        this(2022,6,21);
        System.out.println("调用无参数的构造方法");
    }
    //带参数的构造方法
    public Data(int year,int month,int day){
        this.year = year;
        this.month = month;
        this.day = day;
        System.out.println("调用了有三个参数的额构造方法");
    }
    public void print(){
        System.out.println(this.year+"/"+this.month+" /"+this.day);

    }

}
public class Test {

    public static void main(String[] args) {
        Data data = new Data();
        data.print();

    }
}
